using System.Collections.Generic;
using Comdiv.Extensions;
using Comdiv.Model;
using Comdiv.Model.Interfaces;
using Comdiv.Logging;
using Comdiv.Application;
using Comdiv.Persistence;
using Comdiv.Inversion;
using Comdiv.Security.Acl;
using Comdiv.Conversations;
using Comdiv.IO;
using Comdiv.Security;
using System.Linq;

namespace Comdiv.Dbfs{
    public interface IFileOperationStructure : IFileDefinition{
        ListApplyMode TagApplyMode { get; set; }
        ListApplyMode ReadListApplyMode { get; set; }
        ListApplyMode ChangeListApplyMode { get; set; }
        IDictionary<string, string> Tags { get; set; }
    }

    class FileOperationStructure : IFileOperationStructure {
        public string Code { get; set; }
        public string Name { get; set; }
        public string Comment { get; set; }
        public string System { get; set; }
        public string Mime { get; set; }
        public string Extension { get; set; }
        public string ReadList { get; set; }
        public string ChangeList { get; set; }
        public bool Archived { get; set; }
        public bool ReadOnly { get; set; }
        public bool Deleted { get; set; }
        public string Usr { get; set; }
        public byte[] NewData { get; set; }
        public ListApplyMode TagApplyMode { get; set; }
        public ListApplyMode ReadListApplyMode { get; set; }
        public ListApplyMode ChangeListApplyMode { get; set; }
        public IDictionary<string, string> Tags { get; set; }
    }
}